The use of multiple processors or processors with multiple cores has become increasingly common as a method of increasing the computing power of new computer systems. Multiprocessor and multicore systems share system resources such as system memory and storage devices. Multiple processors or cores often access the same data in memory or storage devices and attempt to utilize this data at the same time. To accomplish this, multiprocessor and multicore systems manage the use of data to maintain data coherency. One facet of maintaining data coherency in multiprocessor systems is ensuring that data cached in each processor is coherent. For example, each processor may obtain the ownership of a cache line in its cache before writing it back to system memory. If another processor requests to write this data to the system memory, it must obey the coherent protocol requirement to obtain the ownership of this cache line prior to its write back.